package first.ape.interview.seven31;

import java.util.Scanner;
import java.util.Stack;

/**
 * @author ZhangyiA
 * @describe:
 * 记 [] 为1个箱子,  []3 表示有3个箱子， [[]3] 表示一个大箱子里面套有3个箱子即4个
 * [[][]3]2  -->  10
 * [][][]3   -->  5
 * [[][]3]2[[][]3]2  -->  20
 * 分析：使用 栈 来保存箱子的个数，将 [ 记为 -1 存入 , 遇到 ] 时找到第一个 -1 , 并把当前层的盒子数入栈
 *         [[][]3]2  -->  10
 * 遍历：   [
 * stack： -1
 *             [
 *         -1 -1
 *                ]
 *             -1 1
 *                   [
 *             -1 1 -1
 *                      ]
 *                 -1 1 1
 *                        3
 *                   -1 1 3
 *                          ]
 *                          5
 *                            2
 * result：                   10
 * @date 2021/07/31
 */

public class second {
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        String str = input.nextLine();
        Stack<Integer> box = new Stack<>();
        for(int i = 0 ; i < str.length() ; i ++){
            char ch = str.charAt(i);
            if(ch == '['){
                box.push(-1);
            } else if(ch == ']'){
                int temp = 1;
                while(!box.isEmpty() && box.peek() != -1){
                    temp += box.pop();
                }
                box.pop(); // 出 左括号 -1
                box.push(temp);
            } else {
                int temp = ch - '0';
                int num = box.pop();
                box.push(num * temp);
            }
        }
        long count = 0;
        while(!box.isEmpty()){
            count += box.pop();
        }
        System.out.println(count);
    }
}
